/////////////////////////////////////////////////////////////////////////

package sheep.view;

/////////////////////////////////////////////////////////////////////////

import sheep.view.Component.TitlePanel;
import java.awt.BorderLayout;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JPanel;

import sheep.controller.Workspace;
import sheep.utils.fileio.Bundles;
import sheep.view.utils.swingx.FrameBorder;

/////////////////////////////////////////////////////////////////////////

public class MainFrame extends JFrame {
  
  /////////////////////////////////////////////////////////////////////////
  
    private final TransitionPanel panel;
    private Component originalOverlay;
    private ContentPanel contentPanel;
      
    /////////////////////////////////////////////////////////////////////////

    MainFrame(final TransitionPanel transPanel) {
      
        // Recupération du titre
        super(Bundles.getMessage(MainFrame.class, "TXT_FrameTitle"));
        // Pas de menu de l'OS en haut
        setUndecorated(true);
        // On quitte si l'on lance le signal quitt
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // Taille
        setSize(1120, 720);
                
        // panel de fond general, dégradé
        contentPanel = new ContentPanel();
        contentPanel.setLayout(new BorderLayout());
        
        // On ajoute le pied et le panneau principales
        contentPanel.add(transPanel, BorderLayout.CENTER);
        contentPanel.add(new Footer(), BorderLayout.SOUTH);
  
        // On creer le reste des bors de la frame
        JPanel Temp = new JPanel(new BorderLayout());
        Temp.setBorder(new FrameBorder());
        setContentPane(Temp);
        TitlePanel titlePanel = new TitlePanel();
        add(titlePanel, BorderLayout.NORTH);
        titlePanel.installListeners();
        
        add(contentPanel, BorderLayout.CENTER);
            
        // On initialise les membres
        this.originalOverlay = getGlassPane();
        this.panel = transPanel;
    }
    
    // Page de debut ( le mouton)
    void showIntroduction() {
        setGlassPane(new IntroductionPanel(panel));
        getGlassPane().setVisible(true);
        this.panel.setContentVisible(false);
    }
    
    // Conteneur general des fenetres
    void showTransitionPanel() {
        this.panel.setContentVisible(true);
    }
    
    // Page de chargement transparent au premier plan
    void showWaitOverlay() {
        setGlassPane(new WaitOverlay(panel));
        getGlassPane().setSize(getSize());
        getGlassPane().validate();
    }
    void hideWaitOverlay() {
        getGlassPane().setVisible(false);
    } 
    void killOverlay() {
        setGlassPane(originalOverlay);
    }

 
/////////////////////////////////////////////////////////////////////////

}

/////////////////////////////////////////////////////////////////////////
